import java.awt.Font;
import layout.TableLayout;
import javax.swing.*;

/**
* @file JLiftPanel.java
*
* @brief Diese Datei enthält die JLiftPanel-Klasse.
*
* @author Alrik Künne
*
* @date 01.06.2012 - erste Version
* @date 19.06.2012 - einige Veränderungen, Multi-Threading
**/

/** 
* @class JLiftPanel
* 
* @brief Das Panel unten rechts auf dem Hauptfenster
* 
* Das Panel stellt alle Schnittstellen in der Fahrkabine des Liftes auf der GUI (unten rechts bereit)
*/ 
@SuppressWarnings("serial")
public class JLiftPanel extends JRigthBorderedPanel{
	public JButton buttons[];
	public JButton Doorsopen;
	public JButton Doorsclose;
	public JDisplay cabineDisplay;
	
	/**
	 * @brief Der Konstruktor
	 * 
	 * initialisiert das Panel und die Komponenten darauf und erstellt das Layout mit Numpad, Display, Öffnen-Knopf und Schließen-Knopf
	 */
	JLiftPanel(){
		super("Liftkabine");
		
		cabineDisplay = new JDisplay();
		
		double[][] mlayout = new double[][]{
		        // X-Achse
		        { TableLayout.FILL},
		        {50, TableLayout.FILL}
		    };
		
		double[][] slayout = new double[][]{
		        // X-Achse
		        {0.33,0.33,0.33},
		        { 0.25,0.25,0.25,0.25}
		    };
		JPanel numpad=new JPanel();
		numpad.setLayout(new TableLayout(slayout));
		innerPanel.setLayout(new TableLayout(mlayout));
		innerPanel.add(cabineDisplay, "0,0");
		innerPanel.add(numpad, "0,1");
		numpad.setBorder(BorderFactory.createEmptyBorder(20,3,3,3)); //top, left, bottom, right
		
		buttons = new JButton[11];
		int line=2;
		int row=0;
		for (int i=0; i<9; i++){
			buttons[i]=new JButton(Integer.toString(i+1));
			buttons[i].setFont(new Font("Dialog", Font.PLAIN, 20)); //schriftgröße der Buttons
			numpad.add(buttons[i], Integer.toString(row)+","+Integer.toString(line));
			row++;
			if(row==3){
				row=0;
				line--;
			}
		}
		Doorsopen=new JButton("<>");
		Doorsclose=new JButton("><");
		Doorsopen.setFont(new Font("Dialog", Font.PLAIN, 20));
		Doorsclose.setFont(new Font("Dialog", Font.PLAIN, 20));
		numpad.add(Doorsopen,"2,3");
		numpad.add(Doorsclose,"0,3"); 
	}
	
}
